python 使用PIL库批量修改图片大小

python 使用PIL库批量修改图片大小

import os
import glob
import os.path
from PIL import Image


def CreateDir(strDir):
    """
    若文件夹不存在则创建
    :param strDir: 文件路径
    :return: 无
    """
    if not os.path.exists(strDir):
        os.makedirs(strDir)


def ConvertJpg(strJpgFile, strSaveDir, width=224, height=224):
    """
    修改图片文件大小 strJpgFile 并保存至 strSaveDir
    :param strJpgFile:  jpg文件路径
    :param strSaveDir:  转换后文件存储路径
    :param width:       图像宽度
    :param height:      图像高度
    :return:            无
    """
    img_src = Image.open(strJpgFile)
    # 注意选择缩放算法
    # img_dst = img_src.resize((width, height), Image.BILINEAR)  # 双线性插值(放大时图像较为模糊,细节损失较严重)
    # img_dst = img_src.resize((width, height), Image.BICUBIC) # 双三次插值(二维空间中最常用的插值方法)
    img_dst = img_src.resize((width, height), Image.LANCZOS) # 得到的图像在抗锯齿和保留锐利边缘的效果较好
    img_dst.save(os.path.join(strSaveDir, os.path.basename(strJpgFile)))


def BatchModifyJpgSize(fileDir, saveDir):
    """
    查找给定路径下图片文件,并修改其大小
    :param fileDir: 文件路径
    :param saveDir: 目标存储路径
    :return:        无
    """
    for jpgFile in glob.glob(fileDir):
        ConvertJpg(jpgFile, saveDir)


def main():
    # 执行代码
    str_src_file = r'xxx\in_dir\*.jpg'
    str_output_dir = r'xxx\out_dir\output'
    CreateDir(str_output_dir)
    BatchModifyJpgSize(str_src_file, str_output_dir)
    print('job done.')


if __name__ == '__main__':
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值